The networking community is currently seeking mechanisms which will enable networks to provide service differentiation based on application and user needs while simultaneously managing congestion.
Congestion control in the Internet has primarily been the responsibility of the end-to-end congestion control mechanisms of TCP (Transmission Control Protocol). However, with the rapid growth of the Internet and the stringent requirements for quality of service (QoS) support, it has become clear that the Internet could not exclusively rely on the end hosts to preform the end-to-end congestion control. Mechanisms are needed in the intermediate network elements to complement the end hosts congestion control mechanisms. Recognizing this, the Internet Engineering Task Force (IETF) has advocated the deployment of active queue management (AQM) mechanisms at the intermediate network elements (routers, switches, etc.) as a means of congestion control.
To perform AQM, the network elements are equipped with the means to detect incipient congestion and to signal the traffic sources before congestion actually occurs. AQM mechanisms allow the network elements to send explicit/implicit feedback of congestion to the end hosts by marking/dropping packets. The end hosts in turn react to the packet marking/dropping by reducing their data transmission rates. The main goals of AQM are to reduce the average queue lengths in the network elements and thereby decrease the end-to-end delay experienced by end user traffic, and maximize the utilization of network resources by reducing the packet loss that occurs when queues overflow.
The current Internet and most private corporate networks offer best-effort service to traffic. In this model, all user packets compete equally for network resources. The best-effort service model has been sufficient until recently when usage and popularity of IP networks (e.g., the Internet) soared. This rise in usage and popularity has been paralleled by a rise in user expectation regarding the type of applications and quality of service offered by these networks. The networking community has recognized the importance of simplicity in packet forwarding mechanisms, but also the inadequacy of the best-effort service model in supporting the wide range of applications and user requirements. Different applications and users are increasingly demanding different quality of service (QoS) and network usage rates.
To address these new demands, the IETF has been looking at a number of architectural enhancements to enable networks to provide service differentiation based on application and user needs. One of these efforts has resulted in the differentiated services (DiffServ) architecture (as described in K. Nichols, S. Blake, F. Baker, and D. Black, “Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers,” IETF RFC 2474, Dec. 1998; and in S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, W. Weiss, “An Architecture for Differentiated Service,” IETF RFC 2475, Dec. 1998).
DiffServ aims to provide a scalable framework for supporting various levels of service to different users and the pricing of such services. It is an approach to service level specifications in IP networks based on traffic conditioning at the network edge and differentiated forwarding of aggregated traffic flows at the network core. The underlying goal of the DiffServ architecture is to address the scalability issue regarding per-flow service differentiation in the core of the network. In DiffServ, the core network elements do not necessarily have to implement complex resource reservation, scheduling, processing, and classification mechanisms in addition to maintaining state information for each individual traffic flow. The architecture allows network designers to push most of the state and forwarding complexity to the edge of the network.
In DiffServ, a distinction is made between boundary and interior nodes. Boundary nodes classify incoming traffic into a small number of aggregate flows according to their diverse QoS requirements such as bandwidth, delay, and packet drop precedence. Once the traffic enters the network, interior nodes deal only with the aggregated traffic. A DiffServ domain refers to a contiguous set of nodes operating with a common set of service provisioning policies and per-hop-behavior (PHB) definitions. Per-domain services are realized by traffic conditioning at the edge and simple differentiated forwarding at the core of the network. Packets are marked with the appropriate DiffServ code point (DSCP) at the edge of the network and within the core of the network, the network nodes (routers, switches, etc.) simply forward packets based on the PHB associated with the DSCP. An end-to-end differentiated service is obtained by concatenation of per-DiffServ domain services.
Two forwarding mechanisms recently standardized by the IETF are Expedited Forwarding (EF) PHB and Assured Forwarding (AF) PHB. The purpose of the EF PHB is to support low loss, low latency, low jitter, assured bandwidth, end-to-end premium service. These services can be used to support delay sensitive traffic requiring high service guarantees. In order to provide the necessary assurance, sufficient network resources need to be reserved. The EF PHB provides a point-to-point connection or a “virtual leased line” type of service. The AF PHB standard specifies four classes and three levels of drop precedence per class. Packets entering the network are classified as belonging to one of these four traffic classes. The three drop precedence levels (from high to low priority) are also referred in terms of color as green (DP0), yellow (DP1), and red (DP2). In case of congestion, an AF-compliant DiffServ node drops low precedence (red) packets in preference to higher precedence (green, yellow) packets. The AF PHB group is intended to provide a flexible, low-cost support for a wide range of traffic needs.
The AF drop precedence levels (or colors) are implemented using an active queue management (AQM) algorithm in the network nodes. AQM has been proposed in B. Braden, et al, “Recommendation on Queue Management and Congestion Avoidance in the Internet,” IETF RFC 2309, Apr. 1998, as a means to provide some congestion control as well as some notion of QoS to users.
One important class of AQM is based on randomized packet dropping or marking. With this form of AQM, a network node drops each arriving packet with a certain probability, where the exact probability is a function of the average queue size or any suitable indicator of network congestion such as rate mismatch at a node. The idea behind AQM is to detect incipient congestion early and convey congestion notification to the end-hosts, allowing them to back off before queue overflow and sustained packet loss occur. The AQM algorithm has to detect and respond to long-term congestion by discarding or marking packets. Very small buffers tend to complicate the control problem in this case as the short queues more easily overflow and do not provide adequate information for process control.
In view of the foregoing, it would be desirable to provide a technique for network queue management which overcomes the above-described inadequacies and shortcomings by providing a mechanism which does not react to short-term burst traffic and allows each precedence level to be addressed differently. During long-term congestion the highest priority traffic should receive the lowest discard rate whereas the lowest priority traffic should receive the highest discard rate.